import math
t = int(input())
for _ in range(t):
A, B, n = map(int, input().split())
attack = list(map(int, input().split()))
hp = list(map(int, input().split()))
sum_mh = 0
for i in range(n):
sum_mh += attack[i] * math.ceil(hp[i] / A)
for i in range(n):
if (B - sum_mh + attack[i]) > 0:
print("YES")
break
else:
print("NO")
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
for(int i=0;i<t;i++)
{
int a,b,n;
vector<pair<int,int>> vec;
cin>>a>>b>>n;
int power[n];
int health[n];
for(int i=0;i<n;i++)
{cin>>power[i];
}
for(int i=0;i<n;i++)
{cin>>health[i];
}
for(int i=0;i<n;i++)
{
vec.emplace_back(power[i],health[i]);
}
sort(vec.begin(),vec.end());
//for(int i=0;i<n;i++)
//cout<<vec[i].first<<" "<<vec[i].second<<endl;
int j=0;
while(b>0&&j!=n)
{
int c=vec[j].second/a;
if(vec[j].second%a!=0)
c=c+1;
int k=b/vec[j].first;
if(b%vec[j].first!=0)
k=k+1;
if(k<c)
break;
b=b-c*vec[j].first;
j++;
}
if(j==n)
cout<<"YES\n";
else
cout<<"NO\n";
}
}
1632C - Strange Test | 673A - Bear and Game |
276A - Lunch Rush | 1205A - Almost Equal |
1020B - Badge | 1353A - Most Unstable Array |
770A - New Password | 1646B - Quality vs Quantity |
80A - Panoramix's Prediction | 1354B - Ternary String |
122B - Lucky Substring | 266B - Queue at the School |
1490A - Dense Array | 1650B - DIV + MOD |
1549B - Gregor and the Pawn Game | 553A - Kyoya and Colored Balls |
1364A - XXXXX | 1499B - Binary Removals |
1569C - Jury Meeting | 108A - Palindromic Times |
46A - Ball Game | 114A - Cifera |
776A - A Serial Killer | 25B - Phone numbers |
1633C - Kill the Monster | 1611A - Make Even |
1030B - Vasya and Cornfield | 1631A - Min Max Swap |
1296B - Food Buying | 133A - HQ9+ |